1. Field of the Invention
The present invention relates to network intermediate systems; and more particularly to network routers which execute network layer circuit routing for communication systems.
2. Description of Related Art
When a number of networks merge at a common point, network routers or switches are used for the purposes of directing the traffic among the interconnected networks which use a variety of protocols. In typical data networks, frame routing is based on address information that is stored in each frame of data being transmitted in the network. In contrast, telephone networks have typically been implemented based on channels of data specified by information external to the data being transmitted. The network routers used to interconnect networks of different types of protocols have been based on switching techniques and on routing techniques. Switching and routing in this context refer to the process by which the network router determines a new destination for a frame which is received at the router. The difference between switching and routing in the data networking environment arises primarily in a complexity of the equipment.
A data router operates by examining (parsing) each frame of data to decode its address using a microcomputer executing a linear stored program. A data switch in comparison decodes the address information using parallel logic fixed in silicon.
Generally switches implemented in parallel logic operate much faster than routers, which typically depend on serialized logic. The penalty for the increased speed of data switches compared to routers comes from the fact that switches are inflexible in the protocols that they can route.
Typically the simplest level of data addressing is the link-layer ethernet address. This address allows the construction of fairly large bridged networks by means of the Spanning Tree 802.1d bridge protocol. Ultimately the size of these networks is limited to some tens of thousands of addresses. To access larger numbers of addresses (internetworks), a more sophisticated addressing protocol is used. These more robust protocols are generally referred to as network layer or "level 3" protocols. The most common of the level 3 protocols is the Internet Protocol. Although some switches can analyze the most common level 3 protocols, their functionality is generally limited and not as flexible as the analysis available from a router.
In the telephony sense, circuit switching consists of dialing a number or otherwise setting up a circuit. Once the addressing phase is over, no further address information is exchanged. All data follows the circuit established by the initial addressing phase of call setup. This is referred to as connection oriented routing.
Common data transmission is "connectionless" in that each frame carries its own address information. There is no idea of a circuit in data switching. Each frame is examined individually without any reference to the frames preceding it. In practice, however, most data traffic does display circuit-like serial dependencies. This temporal locality of reference, referred to as flows, can be used to construct cache mechanisms to exploit this effect.
An example of circuit dependency is in the transmission of a data file. Such a file may consist of thousands of frames of data all identically addressed. All of the frames of the file transfer will also follow each other during a burst of activity. During this burst, each frame will be examined by a router as if each frame were completely unrelated, even though the router may have just routed many identical frames. This constant repetition of an inefficient linear stored program to calculate already known results is a huge waste of resources.
There have been some products aimed at this problem. The "Net-Flow Switch" offered by Cisco Systems, Inc. of San Jose, Calif. does some circuit caching, but the caching is executed in software. The Ipsilon flow switch offered by Ipsilon Networks of Palo Alto, Calif. is also strongly based on circuit detection. 3Com Corporation of Santa Clara, Calif. offers High Function Switching which does some level 3 switching in silicon.
The central issue with level 3 switching is the complexity of the hardware parser. In the simple link-layer switches, the address information is found in fixed locations. This makes it possible to read the address information with hard-wired logic gates. In level 3, there are many variants of the address fields. It is much more difficult to design parallel logic which can follow these varying formats. Some of these variants are: Ethernet, 802.3, IP, SNAP, 4 subvariants of IPX, Apple Talk, and many others. The typical approach is to build parsers for the most common types of traffic, and bridge or slow-route the less common types.
Accordingly, it is desirable to provide a fast network flow switching technique which is adaptable to wide variety of protocols, and improves performance of present multi-protocol network switches and routers.